/**
 * TP GRUPO _ 
 * ALGORITMOS Y PROGRAMACION III
 */

package modelo;
import excepciones.*;
/**
 * @author Grupo _
 */

public class FuncionIntegral extends FuncionParametrica{
 
 private double deltaX;
 private double xInicial;
 private double xFinal;
        
        
 private double area (Funcion funcion,double xInicial,double xFinal)throws ArithmeticException{  //Esta funcion calcula el area mediante sumas sucesivas
  double i=xInicial;
  double area=0;
        if (xInicial==xFinal) return 0;
  while (i<=xFinal){
    area+=deltaX*(Math.abs(funcion.calcular(i))); //El delta X es la base de los sucesivos poligonos formados abajo de la curva
   i+=deltaX;
  }
  return area;
 }

 public FuncionIntegral(Funcion funcion,double deltaX,double xInicial,double xFinal){
  this.setFuncion(funcion);
  this.deltaX=deltaX;
  this.xInicial=xInicial;
  this.xFinal=xFinal;
 }

 public double calcular(double x){
  return area(this.getFuncion(),xInicial,xFinal);
 }

}
      
